"""
除了通过 file-id 传入文档信息外，您还可以直接使用字符串传入文档内容。
在此方法下，为避免模型混淆角色设定与文档内容，请确保在 messages 的第一条消息中添加用于角色设定的信息。
受限于API调用请求体大小，如果您的文本内容长度超过1M Tokens，请参考通过file-id传入文档信息，通过file-id传入。
"""
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope服务endpoint
)

completion = client.chat.completions.create(
    model="qwen-long",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'system', 'content': '百炼手机产品介绍 百炼X1 ——————畅享极致视界：搭载6.7英寸1440 x 3200像素超清屏幕...'},
        {'role': 'user', 'content': '文章讲了什么？'}
    ],
    stream=True,
    stream_options={"include_usage": True}
)

full_content = ""
for chunk in completion:
    if chunk.choices and chunk.choices[0].delta.content:
        full_content += chunk.choices[0].delta.content
        print(chunk.model_dump())

print({full_content})